[HVM][SVM] Reintroduce ASIDs.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 15 May 2007 14:14:02 +0000 (15:14 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 15 May 2007 14:14:02 +0000 (15:14 +0100)
commit322a078ab140d3a651f4431023f121cca3fd982a
tree089433d29dac900345964c0cb977ac91a64c2394
parent07f8d1fdbf4993d8a2c475c99d9d22bd983e23fd
[HVM][SVM] Reintroduce ASIDs.

ASIDs partition the physical TLB for SVM.  In the current implementation
ASIDs are used to reduce the number of TLB flushes.  Each time the
guest's virtual address space changes (e.g. due to an INVLPG,
MOV-TO-{CR3, CR4} operation), instead of flushing the TLB, a new ASID is
assigned.  This reduces the number of TLB flushes to at most 1/#ASIDs
(currently 1/64).  The biggest advantage is that hot parts of the
hypervisor's code and data remain in the TLB.

From: Sebastian Biemueller <Sebastian.Biemueller@amd.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/cpu/amd.c
xen/arch/x86/hvm/svm/Makefile
xen/arch/x86/hvm/svm/asid.c [new file with mode: 0644]
xen/arch/x86/hvm/svm/svm.c
xen/arch/x86/hvm/svm/vmcb.c
xen/arch/x86/hvm/svm/x86_32/exits.S
xen/arch/x86/hvm/svm/x86_64/exits.S
xen/include/asm-x86/hvm/svm/asid.h [new file with mode: 0644]
xen/include/asm-x86/hvm/svm/vmcb.h